<?php
if(!defined('REGEX_ADMIN_OR_OPERATOR')){
	define('REGEX_ADMIN_OR_OPERATOR','/.*[A|a]dmin.*|.*[A|a]dm.*|.*[O|o]perator.*/');
}
class AppController extends Controller {
	
	var $locale = 'de';
	
	var $uses = array('User','Role');
	
	var $components = array(
					'Auth' => array(
   							'authorize' => 'controller'
   						),
					'Session'
					);
		
	var $helpers = array('Session','Form', 'Html', 'Javascript', 'Time' ,'Misc','Navigation','Xml');
	
	function isAuthorized(){
		return true;
	}
	
	function beforeFilter(){
		//debug($this->Auth->password('smatAdmin'));
		$this->Auth->allow(array('login','logout'));
		if(
			$this->Session->check('User.isAdmin')
			&& $this->Session->read('User.isAdmin')
		){
			$this->Auth->allow('*');
		}
		$this->set('referer',$this->referer());
		$this->set('scriptContentInit','');
		$this->set('companyName','');
		$this->Session->write('printParams',array());
		
		if(isset($this->params['url']['print'])){
			$this->layout = 'print';
		}
		
	}
	
	
	public function doFlash($messages=null){
		if(is_array($messages)){
			$classes = 'flashMessage ';
			$msg = '';
			foreach($messages as $key => $value){
				$ucfirst =  ucfirst($key);
				$classes .= strtolower('flash'.$ucfirst.' ');
				$msg .= $ucfirst.': ';
				if(is_array($value)){
					$msg .= implode(', ', $value);
				}else{
					$msg .= $value;
				}
			}
			$this->Session->setFlash($msg,'default',array('class' => $classes));
		}
	}
	
	public function setPrintParams($array){
		$this->Session->write('printParams',array());
	}
	
	/**
	 * Standard method called by cakephp when no parameter are given
	 */
	function index(){

	}
	
	function translate($string){
		if(substr($string,0,1)== '/'){
			$string = substr($string,1,strlen($string));
		}
		if(substr($string,strlen($string)-1,1)== '/'){
			$string = substr($string,0,strlen($string)-1);
		}
		$split = explode('/',$string);
		return $this->locales[$split[0]][$this->locale][$split[1]];
	}

	var $locales = array(
		'roles' => array(
			'de' => array(
				'invalidId' 		=> 'Die Rollen ID %d ist nicht gültig.',
				'notExist' 			=> 'Die Rolle mit der ID %d existiert nicht.',
				'notSaved' 			=> 'Die Rolle %s konnte nicht angelegt werden.',
				'saved' 			=> 'Die Rolle %s wurde angelegt.',
				'notChangeable' 	=> 'Diese Rolle kann nicht geändert werden.',
				'changed'			=> 'Die Rolle %s wurde geändert.',
				'notChanged'		=> 'Die Rolle %s konnte nicht gespeichert werden.',
				'activated' 		=> 'Die Rolle %s wurde aktiviert.',
				'deactivated' 		=> 'Die Rolle %s wurde deaktivert.',
				'notDeactivated' 	=> 'Die Rolle %s konnte nicht deaktivert werden.',
				'notActivated' 		=> 'Die Rolle %s konnte nicht aktiviert werden.',
				'hasDependencies' 	=> 'Die Rolle %s hat Abhängigkeiten. Abhängigkeiten: %s.',
				'deleted' 			=> 'Die Rolle %s wurde gelöscht',
			)
		),
		'states' => array(
			'de' => array(
				'notExist' 			=> 'Der Status mit der ID %d existiert nicht.',
				'invalidId' 		=> 'Die Status-ID %d ist keine gültige ID.'
			)
		),
		'users' => array(
			'de' => array(
				'notExist' 			=> 'Der User mit der ID %d existiert nicht.',
				'invalidId' 		=> 'Die User-ID %d ist keine gültige ID.',
				'notChangeable'		=> 'Der User %s konnte nicht geändert werden',
				'changed'			=> 'Der User %s wurde geändert',
		
			)
		),
		'courses' => array(
			'de' => array(
				'saved' 			=> 'Der Kurs %s wurde angelegt',
				'notSaved' 			=> 'Der Kurs %s konnte nicht angelegt werden',
		
			)
		)
		
	
	
	
	);

}

?>